package cn.lizemin.demo.thread.innerClass;

import cn.lizemin.TestOuter;
import com.sun.org.apache.bcel.internal.generic.NEW;

import java.sql.SQLOutput;

/**
 * @author: lizemin
 * @version: 1.0
 */
public class InnerClass {
    int age = 10;

    public void jump(){
        InnerClass innerClass = new InnerClass();

        System.out.println("test---jump");
        //外部类想要访问内部类的东西，需要创建内部类的对象然后进行调用
        Inner inner = new Inner();
        System.out.println(inner.age);
    }

    public class Inner{
        int age = 20;
        public void test(){
            //可以调用外部类的方法
            jump();
            //5.内部类可以访问外部类的内容
            System.out.println(age);//20,输出的是该类中的age,符合就近原则。
            System.out.println(InnerClass.this.age);//10, 等价于InnerClass.age

            //修改内部类成员变量的值
            int age = 30;
            //8.内部类和外部类属性重名的时候，如何进行调用, 就近原则：
            System.out.println(age);//30
            System.out.println(this.age);//20
            InnerClass innerClass = new InnerClass();
            inner2 inner2 = innerClass.new inner2();



        }
    }

    class inner2{


    }

}

